数学模型

Wang Haihua

🍈 🍉🍊 🍋 🍌


GM(1,1)预测模型

数据序列在累加后呈现出指数形式的单调递增规律, 联想到微分方程 $y^{\prime}=a y$ 具有指数形式的解 $y=e^{a x}$, 由此提出一阶灰色方程模型, 即 GM $(1,1)$ 模型, 其中的第 1 个 1 表示 1 阶微分方程, 第 2 个 1 表示只含 1 个变量的灰色模型。

已知参考数据列 $x^{(0)}=\left(x^{(0)}(1), x^{(0)}(2), \cdots, x^{(0)}(n)\right), 1$ 次累加生成序列 (1-AGO) $$ \begin{gathered} x^{(1)}=\left(x^{(1)}(1), x^{(1)}(2), \cdots, x^{(1)}(n)\right) \\ =\left(x^{(0)}(1), x^{(0)}(1)+x^{(0)}(2), \cdots, x^{(0)}(1)+\cdots+x^{(0)}(n)\right), \end{gathered} $$ 其中 $x^{(1)}(k)=\sum_{i=1}^{k} x^{(0)}(i)(k=1,2, \cdots, n)$ 。 $x^{(1)}$ 的均值生成序列 $$ z^{(1)}=\left(z^{(1)}(2), z^{(1)}(3), \cdots, z^{(1)}(n)\right), $$ 其中 $z^{(1)}(k)=0.5 x^{(1)}(k)+0.5 x^{(1)}(k-1), k=2,3, \cdots, n$ 。

GM(1,1)模型预测步骤

数据的检验与处理

首先, 为了保证建模方法的可行性, 需要对已知数据列作必要的检验处理。计算参考序列的级比 $$ \lambda(k)=\frac{x^{(0)}(k-1)}{x^{(0)}(k)}, k=2,3, \cdots, n . $$ 如果所有的级比 $\lambda(k)$ 都落在可容覆盖 $\Theta=\left(e^{-\frac{2}{n+1}}, e^{\frac{2}{n+1}}\right)$ 内, 则序列 $x^{(0)}$ 可以作 为模型 GM(1,1)的数据进行灰色预测。否则, 需要对序列 $x^{(0)}$ 做必要的变换处理, 使其落入可容覆盖内。即取适当的正常数 $c$, 作平移变换

$$ y^{(0)}(k)=x^{(0)}(k)+c, k=1,2, \cdots, n, $$

使序列 $y^{(0)}=\left(y^{(0)}(1), y^{(0)}(2), \cdots, y^{(0)}(n)\right)$ 的级比 $$ \lambda_{y}(k)=\frac{y^{(0)}(k-1)}{y^{(0)}(k)} \in \Theta, \quad k=2,3, \cdots, n $$ 满足要求。

建立模型

建立微分方程模型 $$ \frac{d x^{(1)}(t)}{d t}+a x^{(1)}(t)=b $$ 该模型是 1 阶 1 个变量的微分方程, 记为 $\operatorname{GM}(1,1)$ 。 为了辨识模型参数 $a, b$ ,在区间 $k-1<t \leq k$ 上, 令 $$ \begin{gathered} x^{(1)}(t)=z^{(1)}(k)=\frac{1}{2}\left[x^{(1)}(k-1)+x^{(1)}(k)\right] \\ \frac{d x^{(1)}(t)}{d t}=x^{(1)}(k)-x^{(1)}(k-1)=x^{(0)}(k) . \end{gathered} $$

则式化为离散模型 $$ x^{(0)}(k)+a z^{(1)}(k)=b, \quad k=2,3, \cdots, n . $$

记 $u=[a, b]^{T}, Y=\left[x^{(0)}(2), x^{(0)}(3), \cdots, x^{(0)}(n)\right]^{T}, B=\left[\begin{array}{cc}-z^{(1)}(2) & 1 \\ -z^{(1)}(3) & 1 \\ \vdots & \vdots \\ -z^{(1)}(n) & 1\end{array}\right]$, 则由最 小二乘法, 求得使 $J(u)=(Y-B u)^{T}(Y-B u)$ 达到最小值的 $u$ 的估计值 $$ \hat{\boldsymbol{u}}=[\hat{\boldsymbol{a}}, \hat{\boldsymbol{b}}]^{T}=\left(\boldsymbol{B}^{T} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{T} \boldsymbol{Y} . $$

于是求解方程, 得 $$ \hat{x}^{(1)}(t)=\left(x^{(0)}(1)-\frac{\hat{b}}{\hat{a}}\right) e^{-\hat{a} t}+\frac{\hat{b}}{\hat{a}} . $$ 即得到预测值 $$ \hat{\boldsymbol{x}}^{(1)}(k+1)=\left(x^{(0)}(1)-\frac{\hat{b}}{\hat{a}}\right) e^{-\hat{a} k}+\frac{\hat{b}}{\hat{a}}, k=0,1,2, \cdots . $$ 而且 $\hat{\boldsymbol{x}}^{(0)}(1)=\hat{\boldsymbol{x}}^{(1)}(1), \hat{\boldsymbol{x}}^{(0)}(k+1)=\hat{\boldsymbol{x}}^{(1)}(k+1)-\hat{\boldsymbol{x}}^{(1)}(k), \quad k=1,2, \cdots$ 。

误差检验

可以使用如下两种检验方式。

预测预报

由 GM(1,1) 模型得到指定点的预测值, 根据实际问题的需要, 给出相 应的预测预报。